
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Itens_listas;

/**
 *
 * @author Brunneka
 */

public class Usuario {
	
	private String nome;
	private String email;
	private String sobrenome;
	private String apelido;
	private Genero generoAtual;
	//private Calendar datNasc;
	private String senha;
	
	public enum Genero {
		
		FEMININO(0), MASCULINO(1);
		
		private int valor;
		
		Genero(int valor) {
			this.valor = valor;
		}
		
		public int getValor() {
			return valor;
	      }
	   }

	/**
	 * Cria um usuario
	 * 
	 * @param nome
	 *            O nome do usuario.
	 * @param curso
	 *            O curso do usuario.
	 * @param email
	 * 			  O e-mail do usuario
	 */

	public Usuario(String nome, String sobrenome, String email, String senha, String nomeUsuario, Genero generoAtual ) {
		this.nome = nome;
		this.email = email;
		this.sobrenome = sobrenome;
		this.apelido = nomeUsuario;
		this.senha = senha;
		this.generoAtual = generoAtual;
	}

	/**
	 * Recupera o nome do usuario.
	 * 
	 * @return O nome associado ao usuario.
	 */

	public String getNome() {
		return nome;
	}

	/**
	 * Atribui um novo nome ao usuario.
	 * 
	 * @param nome
	 *            Novo nome do usuario.
	 */

	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * Recupera o e-mail do usuario..
	 * 
	 * @return O e-mail associado ao usuario.
	 */

	public String getEmail() {
		return email;
	}

	/**
	 * Atribui um novo e-mail ao usuario.
	 * 
	 * @param matricula
	 *            Novo e-mail do usuario.
	 */

	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * Recupera o sobrenome do usuario.
	 * 
	 * @return O sobrenome associado do usuario.
	 */

	public String getSobrenome() {
		return sobrenome;
	}

	/**
	 * Atribui um novo sobrenome ao usuario.
	 * 
	 * @param curso
	 *            Novo sobrenome do usuario.
	 */

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}
	
	/**
	 * Recupera o apelido do usuario.
	 * 
	 * @return O apelido associado ao usuario.
	 */

	
	public String getApelido() {
		return apelido;
	}
	
	/**
	 * Atribui um novo apelido ao usuario.
	 * 
	 * @param curso
	 *            Novo apelido do usuario.
	 */

	public void setApelido(String apelido) {
		this.apelido = apelido;
	}

	/*public Calendar getDatNasc() {
		return datNasc;
	}

	public void setDatNasc(Calendar datNasc) {
		this.datNasc = datNasc;
	}*/
	
	/**
	 * Recupera o a senha do usuario..
	 * 
	 * @return A senha associada ao usuario.
	 */

	public String getSenha() {
		return senha;
	}
	
	/**
	 * Atribui uma nova senha ao usuario.
	 * 
	 * @param curso
	 *            Nova senha do usuario.
	 */

	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	/**
	 * Recupera o genero do usuario..
	 * 
	 * @return O genero associado ao usuario.
	 */


	public Genero getGeneroAtual() {
		return generoAtual;
	}
	
	/**
	 * Atribui um novo genero ao usuario.
	 * 
	 * @param curso
	 *            Novo genero do usuario.
	 */

	public void setGeneroAtual(Genero genero) {
		this.generoAtual = genero;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((email == null) ? 0 : email.hashCode());
		result = prime * result
				+ ((generoAtual == null) ? 0 : generoAtual.hashCode());
		result = prime * result + ((nome == null) ? 0 : nome.hashCode());
		result = prime * result
				+ ((apelido == null) ? 0 : apelido.hashCode());
		result = prime * result
				+ ((sobrenome == null) ? 0 : sobrenome.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Usuario other = (Usuario) obj;
		if (email == null) {
			if (other.email != null)
				return false;
		} else if (!email.equals(other.email))
			return false;
		if (generoAtual != other.generoAtual)
			return false;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equals(other.nome))
			return false;
		if (apelido == null) {
			if (other.apelido != null)
				return false;
		} else if (!apelido.equals(other.apelido))
			return false;
		if (sobrenome == null) {
			if (other.sobrenome != null)
				return false;
		} else if (!sobrenome.equals(other.sobrenome))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return nome + ":" + email + ":"
				+ sobrenome + ":" + apelido + ":"
				+ generoAtual + ":" + ":" + senha;
	}
	
	

}

